home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 676-700 / 681 / term / source.lha / xem.h < prev    next >
C/C++ Source or Header  |  1992-05-09  |  5KB  |  148 lines

  1. /**
  2.  *
  3.  *   Include file for External Emulator Handling
  4.  *
  5.  **/
  6.  
  7. /*
  8.  *   The structure
  9.  */
  10.  
  11. struct XEM_IO
  12. {
  13.     struct Window    *xem_window;
  14.     struct TextFont    *xem_font;
  15.     APTR         xem_console;
  16.     UBYTE        *xem_string;
  17.     ULONG        *xem_signal;
  18.     UWORD         xem_screendepth;
  19.     UWORD         xem_pad;
  20.  
  21.     ULONG        (*xem_sread)();
  22.     LONG        (*xem_swrite)();
  23.     BOOL        (*xem_sflush)();
  24.     BOOL        (*xem_sbreak)();
  25.     ULONG        (*xem_squery)();
  26.     VOID        (*xem_sstart)();
  27.     BOOL        (*xem_sstop)();
  28.  
  29.     VOID        (*xem_tbeep)();
  30.     LONG        (*xem_tgets)();
  31.     ULONG        (*xem_toptions)();
  32.  
  33.     LONG        (*xem_process_macrokeys)();
  34. };
  35.  
  36.  
  37. /*
  38.  *   The xem_option structure
  39.  */
  40.  
  41. struct xem_option
  42. {
  43.     UBYTE    *xemo_description;    /* description of the option                  */
  44.     ULONG     xemo_type;        /* type of option                             */
  45.     UBYTE    *xemo_value;        /* pointer to a buffer with the current value */
  46.     ULONG     xemo_length;        /* buffer size                                */
  47. };
  48.  
  49. /*
  50.  *   Valid values for xemo_type are:
  51.  */
  52.  
  53. #define XEMO_BOOLEAN 1L         /* xemo_value is "yes", "no", "on" or "off"   */
  54. #define XEMO_LONG    2L         /* xemo_value is string representing a number */
  55. #define XEMO_STRING  3L         /* xemo_value is a string                     */
  56. #define XEMO_HEADER  4L         /* xemo_value is ignored                      */
  57. #define XEMO_COMMAND 5L         /* xemo_value is ignored                      */
  58. #define XEMO_COMMPAR 6L         /* xemo_value contains command parameters     */
  59.  
  60. struct XEmulatorMacroKey
  61. {
  62.     struct MinNode    xmk_Node;
  63.     UWORD        xmk_Qualifier;
  64.     UBYTE        xmk_Type;
  65.     UBYTE        xmk_Code;
  66.     APTR        xmk_UserData;
  67. };
  68.  
  69. /*----- Qualifiers for XMK_QUALIFIER -----*/
  70.  
  71. #define XMKQ_NONE      0
  72. #define XMKQ_SHIFT     1
  73. #define XMKQ_ALTERNATE 2
  74. #define XMKQ_CONTROL   3
  75.  
  76. /*----- Types for XMK_TYPE -----*/
  77.  
  78. #define XMKT_IGNORE 1
  79. #define XMKT_RAWKEY 2
  80. #define XMKT_COOKED 3
  81.  
  82.  
  83. struct XEmulatorHostData
  84. {
  85.     UBYTE    *Source;
  86.     UBYTE    *Destination;
  87.     BOOL     InESC;        /* INTER-EMULATOR PRIVATE DATA..  DO NOT TOUCH 'EM..!! */
  88.     BOOL     InCSI;        /* INTER-EMULATOR PRIVATE DATA..  DO NOT TOUCH 'EM..!! */
  89. };
  90.  
  91. BOOL    XEmulatorSetup(struct XEM_IO *io);
  92. BOOL    XEmulatorOpenConsole(struct XEM_IO *io);
  93. VOID    XEmulatorCloseConsole(struct XEM_IO *io);
  94. VOID    XEmulatorCleanup(struct XEM_IO *io);
  95. VOID    XEmulatorWrite(struct XEM_IO *io, UBYTE *string, ULONG len);
  96. BOOL    XEmulatorSignal(struct XEM_IO *io, ULONG sig);
  97. ULONG    XEmulatorHostMon(struct XEM_IO *io, struct HostData *hd, ULONG actual);
  98. ULONG    XEmulatorUserMon(struct XEM_IO *io, UBYTE *retstr, ULONG maxlen, struct IntuiMessage *imsg);
  99. BOOL    XEmulatorOptions(struct XEM_IO *io);
  100. BOOL    XEmulatorClearConsole(struct XEM_IO *io);
  101. BOOL    XEmulatorResetConsole(struct XEM_IO *io);
  102. BOOL    XEmulatorResetTextStyles(struct XEM_IO *io);
  103. BOOL    XEmulatorResetCharset(struct XEM_IO *io);
  104. ULONG    XEmulatorGetFreeMacroKeys(struct XEM_IO *io, ULONG qualifier);
  105. BOOL    XEmulatorMacroKeyFilter(struct XEM_IO *io, struct List *keys);
  106.  
  107. #ifdef LATTICE
  108.  
  109. /* Pragmas for SAS/Lattice-C V5.0 */
  110.  
  111. #pragma libcall XEmulatorBase XEmulatorSetup 1E 801
  112. #pragma libcall XEmulatorBase XEmulatorOpenConsole 24 801
  113. #pragma libcall XEmulatorBase XEmulatorCloseConsole 2A 801
  114. #pragma libcall XEmulatorBase XEmulatorCleanup 30 801
  115. #pragma libcall XEmulatorBase XEmulatorWrite 36 9803
  116. #pragma libcall XEmulatorBase XEmulatorSignal 3C 802
  117. #pragma libcall XEmulatorBase XEmulatorHostMon 42 9803
  118. #pragma libcall XEmulatorBase XEmulatorUserMon 48 A09804
  119. #pragma libcall XEmulatorBase XEmulatorOptions 4E 801
  120. #pragma libcall XEmulatorBase XEmulatorClearConsole 54 801
  121. #pragma libcall XEmulatorBase XEmulatorResetConsole 5A 801
  122. #pragma libcall XEmulatorBase XEmulatorResetTextStyles 60 801
  123. #pragma libcall XEmulatorBase XEmulatorResetCharset 66 801
  124. #pragma libcall XEmulatorBase XEmulatorGetFreeMacroKeys 6c 802
  125. #pragma libcall XEmulatorBase XEmulatorMacroKeyFilter 72 9802
  126. #endif
  127.  
  128. #ifdef AZTEC_C
  129.  
  130. /* Pragmas for Manx Aztec-C V5.0 */
  131.  
  132. #pragma amicall(XEmulatorBase, 0x1E, XEmulatorSetup(a0))
  133. #pragma amicall(XEmulatorBase, 0x24, XEmulatorOpenConsole(a0))
  134. #pragma amicall(XEmulatorBase, 0x2A, XEmulatorCloseConsole(a0))
  135. #pragma amicall(XEmulatorBase, 0x30, XEmulatorCleanup(a0))
  136. #pragma amicall(XEmulatorBase, 0x36, XEmulatorWrite(a0,a1,d0))
  137. #pragma amicall(XEmulatorBase, 0x3C, XEmulatorSignal(a0,d0))
  138. #pragma amicall(XEmulatorBase, 0x42, XEmulatorHostMon(a0,a1,d0))
  139. #pragma amicall(XEmulatorBase, 0x48, XEmulatorUserMon(a0,a1,d0,a2))
  140. #pragma amicall(XEmulatorBase, 0x4E, XEmulatorOptions(a0))
  141. #pragma amicall(XEmulatorBase, 0x54, XEmulatorClearConsole(a0))
  142. #pragma amicall(XEmulatorBase, 0x5A, XEmulatorResetConsole(a0))
  143. #pragma amicall(XEmulatorBase, 0x60, XEmulatorResetTextStyles(a0))
  144. #pragma amicall(XEmulatorBase, 0x66, XEmulatorResetCharset(a0))
  145. #pragma amicall(XEmulatorBase, 0x7C, XEmulatorGetFreeMacroKeys(a0,d0))
  146. #pragma amicall(XEmulatorBase, 0x72, XEmulatorMacroKeyFilter(a0,a1))
  147. #endif
  148.